package net.pimpas.framework;

import java.util.List;

import net.pimpas.core.context.FrameworkContext;
import net.pimpas.core.serviceprovider.ServiceProvider;
import net.pimpas.core.visitor.Visitor;
import net.pimpas.exception.FrameworkException;

public interface Framework {

	void registerServiceProvider(Class<? extends ServiceProvider> serviceProviderType, Class<? extends ServiceProvider> serviceProvider);
	ServiceProvider getServiceProvider(Class<? extends ServiceProvider> serviceProviderType, Object... params);
	
	void config() throws FrameworkException;
	
	List<Visitor> getVisitors( );
	
	FrameworkContext getContext( );
	void setContext(FrameworkContext context);
	void executeCleanUp( );
	
}